package com.hn658.groupshare.account.service;

import java.util.Map;

import com.hn658.framework.dataaccess.pagination.GenericPage;
import com.hn658.framework.shared.entity.IUser;
import com.hn658.groupshare.account.entity.UserAccountEO;

/**
 * 
 * @author ztjie
 *
 */
public interface IUserAccountService {
	
	/**
	 * 通过UID获取用户
	 * @author davidcun
	 */
	public UserAccountEO findUserByUid(Long id);
	
	/**
	 * 根据手机号获取用户信息
	 * @param mobilePhone
	 * @return FundAccountEO
	 * @author davidcun
	 * @date 2015年1月26日
	 * @throws
	 */
	public UserAccountEO findUserByMobilePhone(String mobilePhone);
	
	/**
     * 注册用户
     * @param userInfo 用户信息
     * @return 用户Id
     */
    public UserAccountEO register(UserAccountEO userInfo);
    
    /**
     * 创建用户Session
     * @param id
     * @return
     */
    public String createSession(Long id);
    
    /**
     * 
     * <p>通过用户ID，删除用户Session</p> 
     * @author Think
     * @date 2014-12-2 下午7:31:18
     * @param uid
     * @see
     */
	public void removeSession(Long uid);

    /**
     * 
     * <p>通过authkey得到用户对象</p> 
     * @author ztjie
     * @date 2014-11-25 下午4:27:43
     * @param authkey
     * @return
     * @see
     */
	public IUser getUserByAuthkey(String authkey);

    /**
     * 编辑用户信息
     * @param userInfo
     * @return
     */
    public void update(UserAccountEO userInfo);
    
    /**
     * 
     * <p>删除用户信息</p> 
     * @author ztjie
     * @date 2015-12-5 下午10:51:27
     * @param id
     * @see
     */
    public void removeUser(Long id);

    /**
     * 
     * <p>按条件分页查询注册帐号信息</p> 
     * @author ztjie
     * @date 2014-12-7 上午2:18:16
     * @param queryParam
     * @param pageSize
     * @param startIndex
     * @param orderBy
     * @param isAsc
     * @return
     * @see
     */
	public GenericPage<UserAccountEO> query(Map<String, Object> queryParam, int pageSize, int startIndex, String orderBy, boolean isAsc);

}
